package com.yunji.common.base;

import com.yunji.common.cache.RedisCache;
import com.yunji.common.utils.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * web层通用数据处理
 * 
 * @author yunji
 */
public class BaseController
{
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource
    protected HttpServletRequest request;

    @Resource
    protected HttpServletResponse response;

    @Resource
    protected RedisCache redisCache;

    /**
     * 将前台传递过来的日期格式的字符串，自动转化为Date类型
     */
//    @InitBinder
//    public void initBinder(WebDataBinder binder)
//    {
//        // Date 类型转换
//        binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
//        {
//            @Override
//            public void setAsText(String text)
//            {
//                setValue(TimeUtils.parseDate(text));
//            }
//        });
//    }
//
//    /**
//     * 设置请求分页数据
//     */
//    protected void startPage()
//    {
//        PageUtils.startPage();
//    }

//    /**
//     * 清理分页的线程变量
//     */
//    protected void clearPage()
//    {
//        PageUtils.clearPage();
//    }

    /**
     * 响应请求分页数据
     */
//    protected <T> TableDataInfo<T> getDataTable(List<T> list)
//    {
//        TableDataInfo<T> rspData = new TableDataInfo<>();
//        rspData.setCode(HTTPStatus.SUCCESS);
//        rspData.setMsg("查询成功");
//        rspData.setRows(list);
//        rspData.setTotal(new PageInfo<>(list).getTotal());
//        return rspData;
//    }

    /**
     * 页面跳转
     */
    public String redirect(String url)
    {
        return StringUtils.format("redirect:{}", url);
    }

}
